{{>licenseInfo}}

package {{package}};

import {{invokerPackage}}.ApiException;
import {{invokerPackage}}.ApiClient;
import {{invokerPackage}}.ApiException;
import {{invokerPackage}}.Configuration;
{{#imports}}import {{import}};
{{/imports}}
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.BeforeAll;

{{^fullJavaUtil}}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
{{#supportStreaming}}
import java.io.InputStream;
{{/supportStreaming}}
{{/fullJavaUtil}}

/**
 * API tests for {{classname}}
 */
@Disabled
public class {{classname}}Test {

    private static {{classname}} api;

    
    @BeforeAll
    public static void beforeClass() {
        ApiClient apiClient = Configuration.getDefaultApiClient();
        api = new {{classname}}(apiClient);
    }

    {{#operations}}
    {{#operation}}
    /**
     {{#summary}}
     * {{summary}}
     *
     {{/summary}}
     {{#notes}}
     * {{notes}}
     *
     {{/notes}}
     * @throws ApiException if the Api call fails
     */
    @Test
    public void {{operationId}}Test() throws ApiException {
        {{#allParamsWithRequestBodyProperties}}
        {{{dataType}}} {{paramName}} = null;
        {{/allParamsWithRequestBodyProperties}}
        {{#vendorExtensions.x-streaming}}
        InputStream response = api.{{operationId}}{{^vendorExtensions.x-group-parameters}}({{#requiredParamsWithRequestBodyProperties}}{{paramName}}{{^-last}}, {{/-last}}{{/requiredParamsWithRequestBodyProperties}});{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}({{#requiredParamsWithRequestBodyProperties}}{{paramName}}{{^-last}}, {{/-last}}{{/requiredParamsWithRequestBodyProperties}}){{#optionalParamsWithRequestBodyProperties}}
                .{{paramName}}({{paramName}}){{/optionalParamsWithRequestBodyProperties}}
                .execute();{{/vendorExtensions.x-group-parameters}}
        {{/vendorExtensions.x-streaming}}
        {{^vendorExtensions.x-streaming}}
        {{#returnType}}{{{returnType}}} response = {{/returnType}}api.{{operationId}}{{^vendorExtensions.x-group-parameters}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}});{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}({{#requiredParamsWithRequestBodyProperties}}{{paramName}}{{^-last}}, {{/-last}}{{/requiredParamsWithRequestBodyProperties}}){{#optionalParamsWithRequestBodyProperties}}
                .{{paramName}}({{paramName}}){{/optionalParamsWithRequestBodyProperties}}
                .execute();{{/vendorExtensions.x-group-parameters}}
        {{/vendorExtensions.x-streaming}}
        // TODO: test validations
    }

    {{/operation}}
    {{/operations}}
}
